#Requires AutoHotkey v2.0

; 将数据写入CSV格式的文本的函数
WriteToCSVString(data) {
    ; 初始化空字符串
    csvText := ""
    
    ; 遍历数据并生成CSV格式的文本
    for row in data {
        line := ""
        for col in data[row] {
            ; 如果不是第一列，前面加上逗号
            if (col > 1) {
                line .= ","
            }
            ; 写入数据并处理特殊字符
            value := data[row][col]
            if InStr(value, ",") || InStr(value, """") || InStr(value, "`n") {
                value := """" . StrReplace(value, """", """""") . """"
            }
            line .= value
        }
        ; 将一行数据添加到CSV文本
        csvText .= line . "`n"
    }

    ; 返回CSV格式的文本
    return csvText
}

; 示例数据
data := []
data.Push(["Name", "Age", "City"])
data.Push(["Alice", "30", "New York"])
data.Push(["Bob", "25", "Los Angeles"])
data.Push(["Charlie", "35", "Chicago"])

; 调用函数生成CSV格式的文本
csvText := WriteToCSVString(data)

; 输出CSV文本（这里可以将其写入剪贴板或显示在MsgBox中）
Clipboard := csvText
MsgBox("CSV文本已复制到剪贴板：" . "`n" . csvText)
